package stu;

import java.util.Random;
import java.util.Scanner;

public class StuTest {

     /*
    类的使用和对象数组长度为10
    问题描述：构建一个Student类，有属性学号，年级，成绩。
    定义方法给学生学号赋值，随机赋予年级（1-6），随机赋予成绩。
    能够遍历所有的学生信息；能够按年级查找学生信息；能够按照成绩进行排序
    sort():排序操作
    searchState():查找操作
    printStu():遍历操作
    首先给每个学生赋予学号，年级和成绩的信息
     */

    Student[] stus=new Student[10];

    Random rad=new Random();

    Scanner input=new Scanner(System.in);

    public void init(){
        for (int i=0;i<stus.length;i++){
            stus[i]=new Student();
            stus[i].number=i;
            stus[i].score=rad.nextInt(100)+1;
            stus[i].state=rad.nextInt(6)+1;
        }
    }

    public void printSys(){
        System.out.println("----学生管理-------");
        System.out.println("1打印学生信息");
        System.out.println("2根据学号进行查询");
        System.out.println("3根据成绩进行排序");
        System.out.println("0退出程序");
        System.out.println("请选择");
    }

    public void start(){
        int choose;
        do{
            printSys();
            choose=input.nextInt();

            switch (choose){
                case 1:
                    printStu();
                    break;
                case 2:
                    searchState();
                    break;
                case 3:
                    sort();
                    break;
                case 0:
                    System.out.println("谢谢使用");
                    break;
            }

        }while (choose!=0);


    }

    private void sort() {
        for (int i = 0; i < stus.length; i++) {
            for (int j = 0; j < stus.length-i-1; j++) {
                if(stus[j].score>stus[j+1].score){
                    Student tempStu=stus[j+1];
                    stus[j+1]=stus[j];
                    stus[j]=tempStu;
                }
            }
        }
        System.out.println("排序完成");
    }

    private void searchState() {
        System.out.println("请输入查询学生的学号");
        int num=input.nextInt();
        for (int i = 0; i < stus.length; i++) {
            if(stus[i].number==num){
                System.out.println(stus[i].info());
                return;
            }
        }
        System.out.println("你输入的学号有误");
    }

    private void printStu() {
        for (Student stu:stus){
            System.out.println(stu.info());
        }

    }


    public static void main(String[] args) {
        StuTest stuTest=new StuTest();
        stuTest.init();
        stuTest.start();
    }
}
